// --------------------------------------------------------------------------------------------------------------------
// <copyright file="IBuilder.cs" company="AzureContrib (Open source library http://azurecontrib.codeplex.com)">
//   Microsoft Public License (Ms-PL)
// </copyright>
// <summary>
//   A service that allows build up of instances for Dependency Injection.
// </summary>
// --------------------------------------------------------------------------------------------------------------------

using System.Diagnostics.CodeAnalysis;

namespace AzureContrib.WindowsAzure.ServiceRuntime.ServiceLocation
{
	/// <summary>
	/// A service that allows build up of instances for Dependency Injection.
	/// </summary>
	public interface IBuilder
	{
		/// <summary>
		/// Dependency injection on the <paramref name="instanceToBuild"/>
		/// </summary>
		/// <param name="instanceToBuild">The instance to dependency inject.</param>
		[SuppressMessage("Microsoft.Naming", "CA1702:CompoundWordsShouldBeCasedCorrectly", MessageId = "BuildUp", Justification = "Build Up are two correct words. Casing is correct.")]
		void BuildUp(object instanceToBuild);
	}
}